#pragma once
#include "IComponent.hpp"
namespace EntitasPP
{
	class ComponentWithID :IComponent
	{
	protected:
		ComponentWithID();
		~ComponentWithID();

	private:
		long mID;

	public:
		long GetComponentID() { return mID; }
		void SetComponentID(long id) { mID = id; }
		__declspec(property(get = GetComponentID, put = SetComponentID)) long ID;
	};

	ComponentWithID::ComponentWithID() {
		mID = GetID();
	}
}